//----------------------------------------------------------------------------//

function ScrShadow( nTop, nLeft, nBottom, nRight )

return RestScreen( nTop, nLeft, nBottom, nRight,;
       Transform( SaveScreen( nTop, nLeft, nBottom, nRight ),;
       Replicate( "X" + Chr( 7 ), ( nBottom - nTop + 1 ) * ;
       ( nRight - nLeft + 1 ) ) ) )

//----------------------------------------------------------------------------//

function SayHot( nRow, nCol, cText, cClr1, cClr2 )

   local nAt := At( "&", cText )
   
   if nAt == 0
      @ nRow, nCol SAY cText COLOR cClr1 // + "," + cClr2
   else   
      @ nRow, nCol SAY SubStr( cText, 1, nAt - 1 ) COLOR cClr1
      @ nRow, nCol + nAt - 1 SAY SubStr( cText, nAt + 1, 1 ) COLOR cClr2
      @ nRow, nCol + nAt SAY SubStr( cText, nAt + 2 ) COLOR cClr1
   endif   
   
return nil   

function BtnDraw( nRow, nCol, cText, cClr1, cClr2 )

   local nAt := At( "&", cText )

   SayHot( nRow, nCol, cText, cClr1, cClr2 )
   
   @ nRow + 1, nCol + 1 SAY Replicate( Chr( 223 ), Len( cText ) - If( nAt != 0, 1, 0 ) ) COLOR "N/W"
   @ nRow, nCol + Len( cText ) - If( nAt != 0, 1, 0 ) SAY Chr( 220 ) COLOR "N/W"
   
return nil   
